#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void reverse(int* tmp, int size)
{
    int right = size-1;
    int left = 0;
    while (left < right)
    {
        int ret = tmp[left];
        tmp[left] = tmp[right];
        tmp[right] = ret;
        left++;
        right--;
    }
}
int* plusOne(int* digits, int digitsSize, int* returnSize) {

    int* ans = (int*)malloc(sizeof(int) * (digitsSize + 2));
    if (ans == NULL)
        return NULL;
    *returnSize = digitsSize;
    for (int i = 0; i < digitsSize; i++)
    {
        ans[i] = digits[i];
    }
    reverse(ans, *returnSize);
    int carry = 1;
    for (int i = 0; i < digitsSize; i++)
    {
        carry = carry + ans[i];
        ans[i] = carry % 10;
        carry /= 10;
    }
    if (carry)
    {
        ans[digitsSize] = 1;
        (*returnSize)++;
    }
    reverse(ans, *returnSize);
    return ans;
}
int main()
{
    int arr[1] = { 9};
    int returnSize;
    int* ret = plusOne(arr, 1, &returnSize);
    for (int i = 0; i < returnSize; i++)
    {
        printf("%d", ret[i]);
    }

    return 0;
}
//int removeDuplicates(int* nums, int numsSize) {
//    for (int i = 0; i < numsSize - 1; i++)
//    {
//        if (nums[i] == nums[i + 1])
//        {
//            for (int j = i; j < numsSize - 1; j++)
//                nums[j] = nums[j + 1];
//            numsSize--;
//            i--;
//        }
//    }
//    return numsSize;
//}
//int searchInsert(int* nums, int numsSize, int target) {
//    int left = 0;
//    int right = numsSize - 1;
//    int mid = (left + right) >> 1;
//    while (1)
//    {
//        if (target > nums[right])
//            return numsSize;
//        if (target <= nums[0])
//            return 0;
//        if (target > nums[mid])
//        {
//            if (target <= nums[mid + 1])
//                return mid + 1;
//            left = mid + 1;
//        }
//        if (target <= nums[mid])
//        {
//            if (target > nums[mid - 1])
//                return mid;
//            right = mid - 1;
//        }
//        mid = (left + right) >> 1;
//    }
//}